Consertando o ^M em scripts shell
Dica publicada em Shell Script / Miscelânea
Consertando o ^M em scripts shell
Hoje fui colocar em produção um firewall e notei que ao tentar executar o script, retornava o seguinte erro:
# /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado
O problema acontece quando um shell script é aberto com algum editor DOS. Ele insere quebras de linhas que os editores *NIX não interpretam, inserindo um ^M no fim da linha.
Como sempre, busquei ajuda primeiro aqui no VOL e encontrei algumas soluções usando o comando sed, mas dando uma pesquisada achei uma solução mais simples e funcional com o pacote tofrodos.
A solução foi apontada pelo Rubens Queiroz de Almeida, no Dicas-L e está na íntegra e muitíssimo bem explicada no link abaixo:
# /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado
O problema acontece quando um shell script é aberto com algum editor DOS. Ele insere quebras de linhas que os editores *NIX não interpretam, inserindo um ^M no fim da linha.
Como sempre, busquei ajuda primeiro aqui no VOL e encontrei algumas soluções usando o comando sed, mas dando uma pesquisada achei uma solução mais simples e funcional com o pacote tofrodos.
A solução foi apontada pelo Rubens Queiroz de Almeida, no Dicas-L e está na íntegra e muitíssimo bem explicada no link abaixo:
Através do editor VI também podemos fazer o seguinte:
:set fileformat=dos
ou
:set fileformat=unix
no modo de comando.
Abraço,